package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.MozoBean;
import DAO.HibernateMozoDAO;
import DTO.MozoDTO;
import Model.Mozo;

public class AdministradorMozo {
	private static AdministradorMozo instancia;
	private AdministradorMozo(){
		
	}
	public static AdministradorMozo getInstancia()
	{
		if(instancia==null)
			instancia=new AdministradorMozo();
		return instancia;
	}
	public MozoBean fromModelTOBean(Mozo mozo) {
		MozoBean mozoBean=null;
		if(mozo!=null){
		mozoBean=new MozoBean();
		mozoBean.setIdEmpleado(mozo.getId());
		mozoBean.setClave(mozo.getClave());
		mozoBean.setNombre(mozo.getNombre());
		mozoBean.setPorcentajeComision(mozo.getPorcentajeComision());
		}
		return mozoBean;
	}
	
	public List<MozoBean> fromModelTOBean(List<Mozo> mozos) {
		List<MozoBean> mozosBean=new ArrayList<MozoBean>();
		for (Mozo mozo : mozos) {
			MozoBean mozoBean=fromModelTOBean(mozo);
			mozosBean.add(mozoBean);
		}
		return mozosBean;
	}
	public Mozo fromDTOTOModel(MozoDTO mozoDTO) {
		Mozo mozo=null;
		if(mozoDTO!=null){
		mozo=new Mozo();
		mozo.setId(mozoDTO.getId());
		mozo.setClave(mozoDTO.getClave());
		mozo.setNombre(mozoDTO.getNombre());
		mozo.setPorcentajeComision(mozoDTO.getPorcentajeComision());
		}
		return mozo;
	}
	public List<Mozo> fromDTOTOModel(List<MozoDTO> mozosDTO) {
		List<Mozo> mozos=new ArrayList<Mozo>();
		for (MozoDTO mozoDTO : mozosDTO) {
			Mozo mozo=fromDTOTOModel(mozoDTO);
			mozos.add(mozo);
		}
		return mozos;
	}
	
	public MozoDTO fromModelTODTO(Mozo mozo) {
		MozoDTO mozoDTO=null;
		if(mozo!=null){
			mozoDTO=new MozoDTO();
			mozoDTO.setId(mozo.getId());
			mozoDTO.setClave(mozo.getClave());
			mozoDTO.setNombre(mozo.getNombre());
			mozoDTO.setPorcentajeComision(mozo.getPorcentajeComision());
		}
		return mozoDTO;
	}
	public List<MozoDTO> fromModelTODTO(List<Mozo> mozos) {
		List<MozoDTO> mozosDTO=new ArrayList<MozoDTO>();
		for (Mozo mozo : mozos) {
			MozoDTO mozoDTO=fromModelTODTO(mozo);
			mozosDTO.add(mozoDTO);
		}
		return mozosDTO;
	}
	
	public Mozo fromBeanTOModel(MozoBean mozoBean) {
		Mozo mozo=null;
		if(mozoBean!=null){
		mozo=new Mozo();
		mozo.setId(mozoBean.getIdEmpleado());
		mozo.setClave(mozoBean.getClave());
		mozo.setNombre(mozoBean.getNombre());
		mozo.setPorcentajeComision(mozoBean.getPorcentajeComision());
		}
		return mozo;
	}
	public List<Mozo> fromBeanTOModel(List<MozoBean> mozosBean) {
		List<Mozo> mozos=new ArrayList<Mozo>();
		for (MozoBean mozoBean : mozosBean) {
			Mozo mozo=fromBeanTOModel(mozoBean);
			mozos.add(mozo);
		}
		return mozos;
	}
	public List<MozoBean> fromDTOTOBean(List<MozoDTO> mozos) {
		List<MozoBean>mozosBean=new ArrayList<MozoBean>();
		for(MozoDTO mozo:mozos){
			MozoBean mb=new MozoBean();
			mb.setIdEmpleado(mozo.getId());
			mb.setClave(mozo.getClave());
			mb.setNombre(mozo.getNombre());
			mb.setPorcentajeComision(mozo.getPorcentajeComision());
			mozosBean.add(mb);
		}
		return mozosBean;
	}
	public Mozo buscarMozo(Mozo mozo) {
		MozoBean mozob=fromModelTOBean(mozo);
		mozob=HibernateMozoDAO.getInstancia().buscarMozo(mozob);
		return fromBeanTOModel(mozob);
	}
}
